from __future__ import annotations
from extensions import db
from datetime import datetime
from sqlalchemy.orm import relationship

class ProfitShare(db.Model):
    __tablename__ = 'profit_share'

    # 分润记录ID，使用UUID格式作为唯一标识，用于系统间数据关联
    share_id = db.Column(db.String(36), primary_key=True)
    # 所属店铺ID，标识分润所属的店铺
    store_id = db.Column(db.String(36), db.ForeignKey('stores.store_id', ondelete='CASCADE'), nullable=False)
    # 用户ID，标识分润的接收者
    user_id = db.Column(db.String(36), db.ForeignKey('users.user_id', ondelete='CASCADE'), nullable=False)
    # 分润类型，标识分润的类型，如：股东分润、店长分润、推荐奖励等
    share_type = db.Column(db.Enum('股东分润', '店长分润', '推荐奖励', name='share_type_enum'), nullable=False)
    # 分润金额，记录具体的分润数值
    amount = db.Column(db.Numeric(10, 2), nullable=False)
    # 分润日期，记录分润发生的具体日期
    share_date = db.Column(db.Date, nullable=False)
    # 记录创建时间，分润记录首次创建的时间戳
    created_at = db.Column(db.DateTime, default=datetime.utcnow)
    # 记录最后更新时间，分润记录最后一次修改的时间戳
    updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)

    # 关联关系
    store = relationship('Store', foreign_keys=[store_id], backref=db.backref('profit_shares', lazy='dynamic'))
    user = relationship('User', foreign_keys=[user_id], backref=db.backref('profit_shares', lazy='dynamic'))

    def __repr__(self):
        return f'<ProfitShare {self.share_id}>'